/******************************************************************************
 * * sms_ext.h - extern.h for sms module
 *
 * *(C) Copyright 2019 Asr International Ltd.
 * * All Rights Reserved
 * ******************************************************************************/
#ifndef SMS_EXT_H
#define SMS_EXT_H

#ifdef __cplusplus
// extern "C" {
#endif
extern INT8 *Numberglobal;
extern INT8 *pSmsTextglobal;                                  // for uttest
/**********************
* GLOBAL VARIABLES
**********************/
extern Msg_Global_Ctrl_t g_MsgGlobalCtrl;
extern const INT8        g_AcceptInputNum[13];

/**********************
* sms_common.c
**********************/

extern void app_adaptor_new_sms_ind(app_adp_new_sms_info_ind_t *sms_info);

extern INT8 *UI_Lang_Get_Text_ById(UINT16 TxtId);
extern VOID Sms_Com_Send_Sms_To_One_Req(VOID);
extern VOID Sms_Com_Send_Sms_To_List_Req(VOID);
extern VOID Sms_Timer_Create_And_Start(CB_FUNC callback, UINT32 id);
extern VOID Sms_Timer_Stop_And_Destroy(VOID* id);
extern VOID Sms_Message_Sent_Rep(INT8 *Report);
extern VOID Sms_Message_Sent_Rep_Timeout(VOID* id);
extern VOID Sms_Sim_Storeage_Full(MMI_MODEM_SIM_ID SimId);
extern VOID Sms_Sim_Storeage_Full_Timeout(VOID* id);
extern VOID Sms_Common_Create(VOID *pDesc);
extern VOID Sms_Common_Destory(VOID *pDesc);
extern VOID Sms_Common_Save(VOID *pDesc);
extern VOID Sms_Common_Restore(VOID *pDesc);
extern VOID Sms_Common_Delete_Sms(BOOL DeleteType, VOID **pInput);
extern VOID Sms_Common_Delete_Single_Sms(lv_ll_t **pInput);
extern VOID Sms_List_Only_Common_Destory(VOID *pDesc);
extern VOID Sms_Common_All_Global_Destory(VOID *pDesc);
extern VOID Sms_Common_Free_Msg_Content_Info(lv_ll_t **pMsgContentInfo);
extern VOID Sms_Common_Free_ContactInfo(VOID);
extern SMS_SIM_STATUS Sms_Get_Sim_Status(VOID);

/**********************
* sms_create.c
**********************/
extern VOID Sms_Create(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Destory(VOID *pDesc);
extern VOID Sms_Create_On_Save(VOID *pDesc);
extern VOID Sms_Create_Input_char_Process(UINT8 Len);
extern VOID Sms_Create_On_Create(VOID *pDesc);
extern UINT8 Sms_Create_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Create_Option(VOID);
extern UINT8 Sms_Create_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Create_Spell(lv_obj_t *pBtn);
extern VOID Sms_Create_Send(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Phone_Num_On_Create(VOID *pDesc);
extern VOID Sms_Phone_Num_On_Save(VOID *pDesc);
extern VOID Sms_Phone_Num_On_Destory(VOID *pDesc);
extern VOID Sms_Send_Sim_Select(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Phone_Num_Input_char_Process(UINT8 Len);
extern UINT8 Sms_Create_Phone_Num_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Create_Send_Phone_Num_OK(VOID);
extern UINT8 Sms_Create_Send_Phone_Num_OK_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Create_Message_Sent_Result(MMI_MODEM_SMS_RESULT_TYPE Result);
extern VOID Sms_Create_Message_Sent_Result_Timeout(VOID* id);
extern VOID Sms_Create_Sending_Option(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Send_To_Many(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Send_To_Many_Create(VOID *pDesc);
extern VOID Sms_Send_To_Many_Sim_Select(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Send_To_Many_Sending_Sts(VOID);
extern UINT8 Sms_Send_To_Many_Sending_Sts_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Send_To_Many_Sending_Sts_On_Create(VOID *pDesc);
extern lv_res_t Sms_Send_To_Many_Sending_Sts_Stop(lv_obj_t *pBtn);
extern VOID Sms_Send_To_Many_Sending_Sts_Stop_On_Create(VOID *pDesc);
extern VOID Sms_Send_To_Many_Sending_Rep_Timeout_On_Create(VOID *pDesc);
extern VOID Sms_Send_To_Many_Sending_Rep_Timeout(VOID* id);
extern VOID Sms_Send_To_Many_Sending_Rep_Destory(VOID *pDesc);
extern UINT8 Sms_Sending_Rep_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Send_To_Many_Sending_Rep_Sent(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sending_Rep_Sent_On_Create(VOID *pDesc);
extern VOID Sms_Send_To_Many_Sending_Rep_Failed(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Send_To_Many_Sending_Rep_Failed_Resend(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Send_To_Many_Sending_Rep_Failed_Resend_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Send_To_Many_Sending_Rep_Failed_View(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sending_Rep_Failed_On_Create(VOID *pDesc);
extern VOID Sms_Create_Send_To_List(lv_obj_t *pBtn,lv_event_t event);
extern lv_res_t Sms_Create_Send_To_List_No_List(lv_obj_t *pBtn);
extern lv_res_t Sms_Create_Send_To_List_Empty(lv_obj_t *pBtn);
extern VOID Sms_Create_Send_To_List_Empty_Timeout(VOID* id);
extern lv_res_t Sms_Send_To_List_Distribution_List(lv_obj_t *pBtn);
extern VOID Sms_Send_To_List_Distribution_List_On_Create(VOID *pDesc);
extern VOID Sms_Send_To_List_Sim_Select(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Send_To_List_Distribution_Cnf(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Send_To_List_Distribution_Cnf_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Send_To_List_Distribution_Cnf_OK(lv_obj_t *pBtn);
extern VOID Sms_Create_Insert_Options(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Insert_Option_Num(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Insert_Num_Input_char_Process(UINT8 Len);
extern VOID Sms_Insert_Num_On_Create(VOID *pDesc);
extern UINT8 Sms_Create_Insert_Num_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Create_Insert_Option_Word(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Insert_Word_Input_char_Process(UINT8 Len);
extern VOID Sms_Insert_Word_On_Create(VOID *pDesc);
extern UINT8 Sms_Create_Insert_Word_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Create_Insert_Option_Symbol(lv_obj_t *pBtn,lv_event_t event);
extern lv_res_t Sms_Create_Insert_Symbol_Use(lv_obj_t *pBtn);
extern lv_res_t Sms_Create_Insert_Symbol_Back(lv_obj_t *pBtn);
extern VOID Sms_Create_Save_Messages(lv_obj_t *pLabel,lv_event_t event);
extern VOID Sms_Create_Save_Messages_Timeout(VOID* id);
extern VOID Sms_Create_Clear_Text(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Exit_Editor(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Dictionary(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Dictionary_Sts(lv_obj_t *pLabel,lv_event_t event);
extern VOID Sms_Create_Dictionary_Sts_Timeout(VOID* id);
extern VOID Sms_Create_Matches_Body(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Create_Matches_Body_OK(lv_obj_t *pBtn,lv_event_t event);

/**********************
* sms_delete.c
**********************/
extern VOID Sms_Delete(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Delete_Destory(VOID *pDesc);
extern UINT8 Sms_Delete_Msg_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Delete_All_Read(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_All_Read_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_All_Read_OK(lv_obj_t *pBtn);
extern UINT8 Sms_Delete_All_Read_OK_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Delete_All_Read_Done(VOID* id);
extern VOID Sms_Delete_All_Read_Done_Timeout(VOID* id);
extern VOID Sms_Delete_Inbox(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Delete_Inbox_Options_Onebyone(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Inbox_Options_Onebyone_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Del_Inbox_Timeout(VOID* id);
extern VOID Sms_Del_Inbox_List(UINT32 id);
extern UINT8 Sms_Del_Inbox_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Delete_Inbox_Folder_Sts(VOID);
extern VOID Sms_Del_Inbox_Empty_Timeout(VOID* id);
extern lv_res_t Sms_Delete_Inbox_Onebyone_Done(lv_obj_t *pBtn);
extern UINT8 Sms_Delete_Inbox_Onebyone_Done_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Inbox_Delete_Mark_Cnf_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Inbox_Options_Allread(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Inbox_Options_Allread_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Inbox_Options_Allread_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Inbox_Options_Allread_OK_Sub(VOID);
extern VOID Sms_Delete_Inbox_Options_All(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Inbox_Options_All_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Inbox_Options_All_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Inbox_Options_All_OK_Sub(VOID);
extern VOID Sms_Delete_Drafts(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Delete_Drafts_Options_Onebyone(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Del_Drafts_Timeout(VOID* id);
extern VOID Sms_Del_Drafts_List(UINT32 id);
extern UINT8 Sms_Del_Drafts_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Delete_Drafts_Folder_Sts_Timeout(VOID* id);
extern VOID Sms_Delete_Drafts_Folder_Sts(UINT32 id);
extern VOID Sms_Del_Drafts_Empty_Timeout(VOID* id);
extern VOID Sms_Delete_Drafts_Onebyone_Done(VOID);
extern UINT8 Sms_Delete_Drafts_Onebyone_Done_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Drafts_Delete_Mark_Cnf_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Drafts_Delete_Mark_Cnf_OK_Timeout(VOID* id);
extern VOID Sms_Delete_Drafts_Options_Allread(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Drafts_Options_Allread_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Drafts_Options_Allread_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Drafts_Options_Allread_OK_Sub(VOID);
extern VOID Sms_Delete_Sent_Items(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Delete_Sent_Items_Options_Onebyone(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Del_Sent_Items_Timeout(VOID* id);
extern VOID Sms_Del_Sent_Items_List(UINT32 id);
extern UINT8 Sms_Del_Sent_Items_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Delete_Sent_Items_Folder_Sts(VOID);
extern VOID Sms_Del_Sent_Items_Empty_Timeout(UINT32 id);
extern lv_res_t Sms_Delete_Sent_Items_Onebyone_Done(lv_obj_t *pBtn);
extern UINT8 Sms_Delete_Sent_Items_Onebyone_Done_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Sent_Items_Delete_Mark_Cnf_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Sent_Items_Options_Allread(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Sent_Items_Options_Allread_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Sent_Items_Options_Allread_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Sent_Items_Options_Allread_OK_Sub(VOID);
extern VOID Sms_Delete_Screened_Sms(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Delete_Scrn_Options_Onebyone(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Del_Scrn_Timeout(VOID* id);
extern VOID Sms_Del_Scrn_List(UINT32 id);
extern UINT8 Sms_Del_Scrn_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Delete_Scrn_Folder_Sts(VOID);
extern VOID Sms_Del_Scrn_Empty_Timeout(VOID* id);
extern lv_res_t Sms_Delete_Scrn_Onebyone_Done(lv_obj_t *pBtn);
extern UINT8 Sms_Delete_Scrn_Onebyone_Done_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Scrn_Delete_Mark_Cnf_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Scrn_Options_Allread(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Scrn_Options_Allread_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Scrn_Options_Allread_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Scrn_Options_Allread_OK_Sub(VOID);
extern VOID Sms_Delete_Scrn_Options_All(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_Scrn_Options_All_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Delete_Scrn_Options_All_OK(lv_obj_t *pBtn);
extern VOID Sms_Delete_Scrn_Options_All_OK_Sub(VOID);

/**********************
* sms_distribution.c
**********************/
extern VOID Sms_Distribution_Lists(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Distribution_Lists_Destory(VOID *pDesc);
extern UINT8 Sms_Distribution_Lists_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Distribution_Lists_Opt(lv_obj_t *pBtn);
extern VOID Sms_Distribution_Lists_Opt_On_Create(VOID *pDesc);
extern UINT8 Sms_Distribution_Lists_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Distribution_Lists_Add_List(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Add_List_Input_char_Process(UINT8 Len);
extern VOID Sms_Add_List_On_Create(VOID *pDesc);
extern UINT8 Sms_Add_List_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Distribution_Lists_Full(VOID);
extern VOID Sms_Distribution_Lists_Full_Timeout(VOID* id);
extern VOID Sms_Distribution_Lists_Name_Used(VOID);
extern VOID Sms_Distribution_Lists_Name_Used_Timeout(VOID* id);
extern VOID Sms_Distribution_Lists_Add_Name_OK(INT8 *name);
extern VOID Sms_Distribution_Lists_Add_Name_Timeout(VOID* id);
extern VOID Sms_Distribution_Lists_View_List(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Distribution_Lists_View_List_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Distribution_Lists_View_List_Opt(lv_obj_t *pBtn);
extern UINT8 Sms_Distribution_Lists_View_List_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Distribution_Lists_Add_Contact(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Distribution_Lists_Add_Contact_Cnf(BOOL NameUsed);
extern VOID Sms_Distribution_Lists_Add_Contact_Cnf_Timeout(VOID* id);
extern VOID Sms_Distribution_Lists_Contact_Full(VOID);
extern VOID Sms_Distribution_Lists_Contact_Full_Timeout(VOID* id);

extern VOID Sms_Distribution_Lists_View_Details(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_View_Details_On_Create(VOID *pDesc);
extern UINT8 Sms_Distribution_Lists_View_Details_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Distribution_Lists_Remove_Contact(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Distribution_Lists_Remove_Contact_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Distribution_Lists_Remove_Contact_List(lv_obj_t *pBtn);
extern VOID Sms_Distribution_Lists_Remove_Contact_Timeout(VOID* id);
extern VOID Sms_Distribution_Lists_Send_Sms(lv_obj_t *pBtn,lv_event_t event);
extern lv_res_t Sms_Distribution_Lists_Distri_Empty(lv_obj_t *pBtn);
extern VOID Sms_Distribution_Lists_Distri_Empty_Timeout(VOID* id);

extern VOID Sms_Distribution_Lists_Rename_List(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Rename_List_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Distribution_Lists_Rename_OK(INT8 *name);
extern VOID Sms_Distribution_Lists_Delete_List(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Delete_List_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Distribution_Lists_Delete_List_OK(lv_obj_t *pBtn);

/**********************
* sms_draft.c
**********************/
extern VOID Sms_Drafts(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Drafts_Destory(VOID *pDesc);
extern VOID Sms_Drafts_Timeout(VOID* id);
extern VOID Sms_Drafts_List(UINT32 id);
extern VOID Sms_Drafts_List_On_Create(VOID *pDesc);
extern UINT8 Sms_Drafts_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Drafts_Empty(VOID* id);
extern VOID Sms_Drafts_Empty_Timeout(VOID* id);
extern VOID Sms_Drafts_List_Read(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Drafts_List_Read_Timeout(VOID* id);
extern VOID Sms_Drafts_Body(UINT32 id);
extern VOID Sms_Drafts_Body_On_Create(VOID *pDesc);
extern UINT8 Sms_Drafts_Body_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Drafts_Opt(lv_obj_t *pBtn);
extern UINT8 Sms_Drafts_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Drafts_Opt_Delete(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Drafts_Opt_Delete_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Drafts_Opt_Delete_OK(lv_obj_t *pBtn);
extern VOID Sms_Drafts_Opt_Delete_Done(VOID* id);
extern VOID Sms_Drafts_Opt_Delete_Done_Timeout(VOID* id);
extern VOID Sms_Drafts_Opt_Edit(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Drafts_Opt_Use_Num(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Drafts_Opt_Use_Num_No_Num(VOID);
extern VOID Sms_Drafts_Opt_Use_Num_No_Num_Timeout(VOID* id);
extern UINT8 Sms_Drafts_Opt_Use_Num_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Drafts_Opt_Use_Num_OK(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Drafts_Opt_Forward(lv_obj_t *pBtn,lv_event_t event);

/**********************
* sms_main.c
**********************/
extern VOID Sms_Main(VOID);
extern UINT8 Sms_Main_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);

/**********************
* sms_receive.c
**********************/
extern VOID Sms_Inbox(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Timeout(VOID* id);
extern VOID Sms_Inbox_List(UINT32 id);
extern VOID Sms_Inbox_On_Create(VOID *pDesc);
extern VOID Sms_Inbox_Destory(VOID *pDesc);
extern UINT8 Sms_Inbox_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Inbox_Empty(VOID);
extern VOID Sms_Inbox_Empty_Timeout(VOID* id);
extern VOID Sms_Inbox_List_Read(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_MsgBody(VOID);
extern VOID Sms_Inbox_Flush_ButtonList(UI_List_Desc_t *List);
extern VOID Sms_Inbox_MsgBody_On_Create(VOID *pDesc);
extern UINT8 Sms_Inbox_MsgBody_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Inbox_Opt(lv_obj_t *pBtn);
extern UINT8 Sms_Inbox_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Inbox_Opt_Delete(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Inbox_Opt_Delete_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Inbox_Opt_Delete_OK(lv_obj_t *pBtn);
extern lv_res_t Sms_Inbox_Opt_Delete_Done(lv_obj_t *pLabel);
extern VOID Sms_Inbox_Opt_Delete_Done_Timeout(VOID* id);
extern VOID Sms_Inbox_Opt_Reply(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Opt_Edit(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Opt_Use_Num(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Opt_Use_Num_No_Num(VOID);
extern VOID Sms_Inbox_Opt_Use_Num_No_Num_Timeout(VOID* id);
extern UINT8 Sms_Inbox_Opt_Use_Num_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Inbox_Opt_Use_Num_OK(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Opt_Forward(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Opt_Details(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Inbox_Opt_Details_On_Create(VOID *pDesc);
extern VOID Sms_Inbox_Opt_Add_To_Scrn(lv_obj_t *pBtn,lv_event_t event);

/**********************
* sms_scrn.c
**********************/
extern VOID Sms_Screened_Msgs(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Scrn_Timeout(VOID* id);
extern VOID Sms_Screened_Msgs_List(UINT32 id);
extern VOID Sms_Screened_Msgs_On_Create(VOID *pDesc);
extern VOID Sms_Screened_Msgs_Destory(VOID *pDesc);
extern UINT8 Sms_Screened_Msgs_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Scrn_Empty(VOID);
extern VOID Sms_Scrn_Empty_Timeout(VOID* id);
extern VOID Sms_Screened_Msgs_List_Read(lv_obj_t *pBtn,lv_event_t event);
extern lv_res_t Sms_Screened_Msgs_Body(lv_obj_t *pBtn);
extern UINT8 Sms_Screened_Msgs_Body_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Screened_Msgs_Body_On_Create(VOID *pDesc);
extern lv_res_t Sms_Screened_Msgs_Opt(lv_obj_t *pBtn);
extern UINT8 Sms_Screened_Msgs_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Screened_Msgs_Opt_Delete(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Screened_Msgs_Opt_Delete_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Screened_Msgs_Opt_Delete_OK(lv_obj_t *pBtn);
extern lv_res_t Sms_Screened_Msgs_Opt_Delete_Done(lv_obj_t *pLabel);
extern VOID Sms_Screened_Msgs_Opt_Delete_Done_Timeout(VOID* id);
extern VOID Sms_Screened_Msgs_Opt_Delete_From_List(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Screened_Msgs_Opt_Delete_From_List_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Screened_Msgs_Opt_Delete_From_List_OK(lv_obj_t *pBtn);
extern VOID Sms_Screened_Msgs_Opt_Delete_From_List_Timeout(UINT32 id);
extern VOID Sms_Screened_Msgs_Opt_Delete_List_Sts_Timeout(VOID* id);

/**********************
* sms_sent.c
**********************/
extern VOID Sms_Sent_Items(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Timeout(VOID* id);
extern VOID Sms_Sent_Items_List(UINT32 id);
extern VOID Sms_Sent_Items_On_Create(VOID *pDesc);
extern VOID Sms_Sent_Items_Destory(VOID *pDesc);
extern UINT8 Sms_Sent_Items_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Sent_Items_Empty(VOID);
extern VOID Sms_Sent_Items_Empty_Timeout(VOID* id);
extern VOID Sms_Sent_Items_List_Read(lv_obj_t *pBtn,lv_event_t event);
extern lv_res_t Sms_Sent_Items_Body(lv_obj_t *pBtn);
extern UINT8 Sms_Sent_Items_Body_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Sent_Items_Body_On_Create(VOID *pDesc);
extern lv_res_t Sms_Sent_Items_Opt(lv_obj_t *pBtn);
extern UINT8 Sms_Sent_Items_Opt_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Sent_Items_Opt_Resend(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Opt_Delete(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Sent_Items_Opt_Delete_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Sent_Items_Opt_Delete_OK(lv_obj_t *pBtn);
extern lv_res_t Sms_Sent_Items_Opt_Delete_Done(lv_obj_t *pLabel);
extern VOID Sms_Sent_Items_Opt_Delete_Done_Timeout(VOID* id);
extern VOID Sms_Sent_Items_Opt_Edit(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Opt_Use_Num(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Opt_Use_Num_No_Num(VOID);
extern VOID Sms_Sent_Items_Opt_Use_Num_No_Num_Timeout(VOID* id);
extern UINT8 Sms_Sent_Items_Opt_Use_Num_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Sent_Items_Opt_Use_Num_OK(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Opt_Forward(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Opt_Details(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Sent_Items_Opt_Details_On_Create(VOID *pDesc);

/**********************
* sms_setting.c
**********************/
extern VOID Sms_Setting(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Setting_Destory(VOID *pDesc);
extern UINT8 Sms_Setting_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Setting_Sending_Profile(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Setting_Sim_Select(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Setting_Sim_Select_On_Create(VOID *pDesc);
extern UINT8 Sms_Setting_Phone_Num_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Setting_Phone_Num_OK(VOID);
extern VOID Sms_Setting_Phone_Num_OK_Timeout(VOID* id);
extern VOID Sms_Setting_Delivery_Report(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Setting_Sim_Select_Sts(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Setting_Delivery_Rep(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Setting_No_Scrn(lv_obj_t *pBtn,lv_event_t event);

/**********************
* sms_ussd.c
**********************/
extern VOID Sms_Ussd(lv_obj_t *pBtn,lv_event_t event);
extern VOID Sms_Ussd_On_Save(VOID *pDesc);
extern VOID Sms_Ussd_Input_char_Process(UINT8 Len);
extern VOID Sms_Ussd_On_Create(VOID *pDesc);
extern UINT8 Sms_Ussd_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Ussd_Send(VOID);
extern VOID Sms_Ussd_Send_Sim_Select(lv_obj_t *pBtn,lv_event_t event);
extern UINT8 Sms_Ussd_Send_Sim_Select_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern lv_res_t Sms_Ussd_Cmd_Quit(lv_obj_t *pBtn);
extern VOID Sms_Ussd_Send_Result(MSG_USSD_RESULT_TYPE Result, INT8 *pUssdCnf);
extern UINT8 Sms_Cmd_Result_Handle(lv_obj_t *obj, UI_KEY_STATUS key_sta, UI_KEY_VALUE key_val);
extern VOID Sms_Ussd_Send_Result_Fail(VOID);
extern VOID Sms_Ussd_Send_Result_Abort(VOID);
extern VOID Sms_Ussd_Send_Result_Timeout(VOID* id);

extern VOID Sms_Test_Main(VOID);

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SMS_EXT_H*/
